#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdio.h>
#include<string.h>
//int RemoveElement(int* nums, int numsSize, int val) {
//	int i = 0;
//	for (i = 0; i < numsSize; i++)
//	{
//		if (nums[i] == val)
//		{
//			nums[i] = nums[i + 1];
//		}
//	}
//	int ret = sizeof(nums) / sizeof(nums[0]);
//	return ret;
//}
//int removeElement(int* nums, int numsSize, int val) 
//{
//    int left = 0;
//    for (int right = 0; right < numsSize; right++) {
//        if (nums[right] != val) {
//            nums[left] = nums[right];
//            left++;
//        }
//    }
//    return left;
//}
//int removeElement(int* nums, int size,int val)
//{
//	int left = 0;
//	for (int right=0;right<size;right++)
//	{
//		if (nums[right] != val)
//		{
//			nums[left] = nums[right];
//			left++;
//		}
//	}
//	return left;
//}
//int main()
//{
//	int arr[6] = { 1,2,3,5,2,4 };
//	int value = 2;
//	int ret = 0;
//	int count = 0;
//	int numsSize = sizeof(arr) / sizeof(arr[0]);
//	ret = removeElement(arr, numsSize, value);
//	for (int i = 0; i < numsSize; i++)
//	{
//		if (arr[i] == value)
//		{
//			count++;
//		}
//	}
//	printf("%d\n", count);
//	for (int i = 0; i < ret; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//	return 0;
//}
//void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
//{
//	int* arr = { 0 };
//	int j = 0;
//	for (int i = 0; i < nums1Size; i++)
//	{
//		if (nums1[i] < nums2[j] && j<nums2Size)
//		{
//			arr[i] = nums1[i];
//		}
//		else
//		{
//			arr[i] = nums2[j];
//			j++;
//		}
//	}
//	for (int i = 0; i < nums1Size; i++)
//	{
//		nums1[i] = arr[i];
//	}
//}
//void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
//{
//	int* tmp;
//	int k = 0;
//	int i, j = 0;
//	while (i < nums1Size && j < nums2Size)
//	{
//		if (nums1[i] <= nums2[j])
//		{
//			tmp[k++] = nums1[i];
//		}
//		else
//			tmp[k++] = nums2[j];
//	}
//	for (int i = 0; i < k; i++)
//	{
//		nums1[i] = tmp[i];
//	}
//}
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
	int* arr;
	int p1 = 0, p2 = 0;
	int cur = 0;
	while (p1 && p2)
	{
		if (p1 == m)
			cur = nums2[p2++];
		else if (p2 == n)
			cur = nums1[p1++];
		else if (nums1[p1] < nums2[p2])
			cur = nums1[p1++];
		else
			cur = nums2[p2++];
		arr[p1 + p2 - 1] = cur;
	}
	for (int i = 0; i < m + n; i++)
	{
		nums1[i]=arr[i];
	}
}